5.2 条件语句
在实际的项目开发中,我们是一定会用到判断的。
比如判断a、b两个数字的大小,如果a大于b执行逻辑1;如果a小于b那么执行逻辑2。
类似上面的这种操作在我们实际使用时是很常见的。与大多数语言一样,Go语言也是使用if、else、else if来进行判断。
本节代码存放目录为 lesson14
if else 的使用
我们单纯使用if来实现业务逻辑。如下所示:
a := 1
b := 2
if a > b {
fmt.Println("a > b")
}
在上面的代码中,我们使用if进行了判断,与大多数语言不同的是,a > b不需要使用括号括起来。
同时需要注意的是:if a > b {,这里的大括号不能换行,否则编译后可能会出现问题,因为Go语言在编译时会进行一些格式优化。
我们可以将if、else配合使用。如下所示:
if a > b {
fmt.Println("a > b")
} else {
fmt.Println("a < b or a == b")
}
但是在函数里面我们一般会这样:
if a > b {
fmt.Println("a > b")
return
}
fmt.Println("a < b or a == b")
在上面的代码中,我们在a > b时就直接进行了返回,而不用进行else,这样可以让代码简洁一些。
同时我们还可以配合else if一起使用。代码如下:
if a > b {
fmt.Println("a > b")
} else if a == b {
fmt.Println("a == b")
} else {
fmt.Println("a < b")
}
在上面的代码中,我们增加了else if的使用,在实际的开发过程中,一般我们会将优先满足的条件放在前面。
switch 使用
switch与其他语言基本是一样的,使用结构如下:
switch a {
case 1:
fmt.Println("a == 1")
case 2:
fmt.Println("a == 2")
case 3:
fmt.Println("a == 3")
default:
fmt.Println("a value null")
}
在上面的代码中,我们使用switch进行了条件判断,其中包含了几个基本内容:switch、变量值、case、default。
其中switch、变量值、case是必须的,default是非必须的。
从上面的代码可以看出,在Go语言中switch是没有break的。
另外Go语言中switch还具有另外一个比较特殊的东西,叫做:fallthrough。如下代码所示:
switch a {
case 1:
fmt.Println("a == 1")
fallthrough
case 2:
fmt.Println("a == 2")
case 3:
fmt.Println("a == 3")
default:
fmt.Println("a value null")
}
在上面的代码中,我们在case 1下面增加了fallthrough。结果输出如下:
a == 1
a == 2
从输出我们可以看出,case 2也被执行了,这也正是fallthrough的特性。
也就是:当匹配到case之后,还会强制执行下一个case。
在上面的代码中,匹配到了case 1,由于case 1中包含了fallthrough,所以继续执行了case 2,输出了a == 2。
小结
条件语句是组成程序的重要组成部分,Go语言的条件语句与其他编程语言基本是一致的。
针对本节总结如下:
可以使用
if、else if、else进行组合判断if条件后的大括号不能换行,必须跟在一起在使用条件语句时,我们一般遵循:先满足先处理,先满足先返回的原则
可以使用
switch进行值选择判断switch与其他语言使用相同,不同的是不用break可以使用
fallthrough强制跳转到下一个case